The following description is provided to assist the understanding of the reader. None of the information provided or references cited is admitted to be prior art.
Neural networks are often used in machine learning tasks. Parameters such as weights resulting from training a neural network are often stored in data storage media. The stored parameters are often protected against error by using Error Correcting Codes (ECCs). However, ECCs typically add to a storage overhead in terms of both usage of the storage media and the processing required to access the parameters. This can result in a corresponding latency and/or reduction in bandwidth when accessing the parameters from the storage media. In applications where bandwidth or processing time is critical, such as with time sensitive video recognition (e.g., pedestrian detection) or on-line speech translation, the latency and reduction in bandwidth due to ECCs can have a significant impact on overall system performance.
The performance of the recognition or detection through the neural networks may depend on available processing and memory resources given the large number of parameters that are used in most neural networks. Such processing and memory limitations may be apparent for consumer products such as vehicles or smartphones. For example, a self-driving vehicle may need to quickly process video data to recognize and react to road conditions. However, the amount of processing and memory resources may be limited in the vehicle due to cost and space constraints. The increase in storage overhead and the corresponding latency and/or reduction in bandwidth caused by ECCs may therefore limit the practical use of neural networks.